import qs from 'qs';
import request from '@/utils/request';
import { ResponseData } from '../typing';
// 参数接口
export interface UpdatePropertyRenterParams {
    // 房产id */
    propertyId: number;
    // 姓名 */
    name: string;
    // 电话 */
    phone: string;
    // 身份证号 */
    idCard: string;
    // 业主id */
    propertyOwnerId: number;
    // 业主姓名 */
    propertyOwner: string;
    // 合同开始时间 */
    startTime: Record<string, unknown>;
    // 合同结束时间 */
    endTime: Record<string, unknown>;
    // 租赁合同 */
    leaseContract: string;
    // 主键 */
    id: number;
    // 租赁合同 */
    files: {
        viewAddress: string;
        oldName: string;
        newName: string;
        totalSize: Record<string, unknown>;
    }[];
}
// 响应接口
export interface UpdatePropertyRenterRes {
    code: number;
    data: boolean;
    msg: string;
}
/**
 * 更新租户
 * @param {object} params 管理后台 - 租户更新 Request VO
 * @param {number} params.propertyId 房产id
 * @param {string} params.name 姓名
 * @param {string} params.phone 电话
 * @param {string} params.idCard 身份证号
 * @param {number} params.propertyOwnerId 业主id
 * @param {string} params.propertyOwner 业主姓名
 * @param {object} params.startTime 合同开始时间
 * @param {object} params.endTime 合同结束时间
 * @param {string} params.leaseContract 租赁合同
 * @param {number} params.id 主键
 * @returns
 */
export function updatePropertyRenter(params: UpdatePropertyRenterParams): Promise<UpdatePropertyRenterRes> {
    return request.put(`/yfwy/property-renter/update`, params);
}
// 参数接口
export interface ReletParams {
    // 原纪录id */
    id: number;
    // 业主id */
    propertyOwnerId: number;
    // 业主姓名 */
    propertyOwner: string;
    // 合同开始时间 */
    startTime: Record<string, unknown>;
    // 合同结束时间 */
    endTime: Record<string, unknown>;
    // 租赁合同 */
    leaseContract: string;
}
// 响应接口
export interface ReletRes {
    code: number;
    data: number;
    msg: string;
}
/**
 * 续租
 * @param {object} params 管理后台 - 租户创建 Request VO
 * @param {number} params.id 原纪录id
 * @param {number} params.propertyOwnerId 业主id
 * @param {string} params.propertyOwner 业主姓名
 * @param {object} params.startTime 合同开始时间
 * @param {object} params.endTime 合同结束时间
 * @param {string} params.leaseContract 租赁合同
 * @returns
 */
export function relet(params: ReletParams): Promise<ReletRes> {
    return request.post(`/yfwy/property-renter/relet`, params);
}
// 参数接口
export interface CreatePropertyRenterParams {
    // 房产id */
    propertyId: number;
    // 姓名 */
    name: string;
    // 电话 */
    phone: string;
    // 身份证号 */
    idCard: string;
    // 业主id */
    propertyOwnerId: number;
    // 业主姓名 */
    propertyOwner: string;
    // 合同开始时间 */
    startTime: Record<string, unknown>;
    // 合同结束时间 */
    endTime: Record<string, unknown>;
    // 租赁合同 */
    files: {
        viewAddress: string;
        oldName: string;
        newName: string;
        totalSize: Record<string, unknown>;
    }[];
}
// 响应接口
export interface CreatePropertyRenterRes {
    code: number;
    data: number;
    msg: string;
}
/**
 * 创建租户
 * @param {object} params 管理后台 - 租户创建 Request VO
 * @param {number} params.propertyId 房产id
 * @param {string} params.name 姓名
 * @param {string} params.phone 电话
 * @param {string} params.idCard 身份证号
 * @param {number} params.propertyOwnerId 业主id
 * @param {string} params.propertyOwner 业主姓名
 * @param {object} params.startTime 合同开始时间
 * @param {object} params.endTime 合同结束时间
 * @param {string} params.leaseContract 租赁合同
 * @returns
 */
export function createPropertyRenter(params: CreatePropertyRenterParams): Promise<CreatePropertyRenterRes> {
    return request.post(`/yfwy/property-renter/create`, params);
}
// 响应接口
export interface GetPropertyRenterPageRes {
    code: number;
    data: {
        // 主键 */
        id: number;
        // 房产id */
        propertyId: number;
        // 姓名 */
        name: string;
        // 电话 */
        phone: string;
        // 身份证号 */
        idCard: string;
        // 业主id */
        propertyOwnerId: number;
        // 业主姓名 */
        propertyOwner: string;
        // 欠费金额 */
        arrearsAmount: string;
        // 工单数量 */
        workOrderCnt: number;
        // 合同开始时间 */
        startTime: Record<string, unknown>;
        // 合同结束时间 */
        endTime: Record<string, unknown>;
        // 状态:0->停租,1->在租 */
        status: number;
    }[];
    msg: string;
}
/**
 * 获得租户列表
 * @param {string} propertyId
 * @returns
 */
export function getPropertyRenterPage(params: { propertyId: string }): Promise<GetPropertyRenterPageRes> {
    return request.get(`/yfwy/property-renter/list/${params.propertyId}`);
}
// 响应接口
export interface GetPropertyRenterRes {
    code: number;
    data: {
        createTime: Record<string, unknown>;
        updateTime: Record<string, unknown>;
        creator: number;
        updater: number;
        // 主键 */
        id: number;
        // 房产id */
        propertyId: number;
        // 姓名 */
        name: string;
        // 电话 */
        phone: string;
        // 身份证号 */
        idCard: string;
        // 业主id */
        propertyOwnerId: number;
        // 业主姓名 */
        propertyOwner: string;
        // 欠费金额 */
        arrearsAmount: string;
        // 合同开始时间 */
        startTime: Record<string, unknown>;
        // 合同结束时间 */
        endTime: Record<string, unknown>;
        // 租赁合同 */
        leaseContract: string;
        // 状态:0->停租,1->在租 */
        status: number;
        // 租赁合同 */
        files: {
            viewAddress: string;
            oldName: string;
            newName: string;
            totalSize: Record<string, unknown>;
        }[];
    };
    msg: string;
}
/**
 * 获得租户
 * @param {string} id
 * @returns
 */
export function getPropertyRenter(id: number): Promise<GetPropertyRenterRes> {
    return request.get(`/yfwy/property-renter/get/${id}`);
}
/**
 * 删除租户
 * @param {string} id
 * @returns
 */
export function deletePropertyRenter(id: number): Promise<ResponseData<boolean>> {
    return request.delete(`/yfwy/property-renter/delete/${id}`);
}

// 参数接口
export interface OffParams {
    id: number;
    endTime: Record<string, unknown>;
}

/**
 * 停租
 * @param {object} params 管理后台 - 租户创建 Request VO
 * @param {number} params.id 纪录id
 * @param {object} params.endTime 合同结束时间
 * @returns
 */
export function off(params: OffParams): Promise<ResponseData<boolean>> {
    return request.post(`/yfwy/property-renter/off`, params);
}
